﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using FastDATA;

namespace CursoUNICEUB
{
    public partial class Oportunidade : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
                CarregaOportunidade();
        }

        private void CarregaOportunidade()
        {
            try
            {
                DEOportunidade entidade = getOportunidade();
                if (entidade == null)
                    Util.showMessage(this, "Oportunidade não encontrada", "../Oportunidades.aspx");
                else
                {
                    this.lblData.Text = entidade.Data.ToShortDateString();

                    if (Session["aluno"] == null)
                    {
                        this.lblEmpresa.Text = "Restrito para alunos.";
                        this.lblTelefone.Text = "Restrito para alunos.";
                        this.lblEmail.Text = "Restrito para alunos.";
                        //this.btnEnviar.Visible = false;
                    }
                    else
                    {
                        this.lblEmpresa.Text = entidade.DEEmpresa.Nome;
                        this.lblTelefone.Text = entidade.TelefoneEmpresa.Insert(4, "-");
                        this.lblEmail.Text = entidade.EmailEmpresa;
                        this.lblConfidencial.Text = entidade.Confidencial;
                    }

                    this.lblTitulo.Text = entidade.Titulo;
                    this.lblCargo.Text = entidade.DescricaoCargo;
                    this.lblDescricao.Text = entidade.Descricao;
                    this.lblRequisito.Text = entidade.Requisito;
                    if (entidade.SalarioFinal.HasValue)
                        this.lblSalario.Text = "De " + String.Format("{0:0.0,0}", entidade.SalarioInicial) + " até " + String.Format("{0:0.0,0}", entidade.SalarioFinal);
                    else
                    {
                        if (entidade.SalarioInicial.HasValue)
                            this.lblSalario.Text = String.Format("{0:0.0,0}", entidade.SalarioInicial);
                        else
                            this.lblSalario.Text = "A combinar.";
                    }
                }
            }
            catch (Exception)
            {
                Util.showMessage(this, "Houve um erro ao carregar a oportunidade. Tente novamente mais tarde, ou entre em contato");
            }
        }

        private DEOportunidade getOportunidade()
        {
            int codigo = getOportunidadeID();
            if (codigo == 0)
            {
                Util.showMessage(this, "Oportunidade não encontrada", "../Oportunidades.aspx");
                return null;
            }
            else
            {
                using (DCCursoDataContext banco = new DCCursoDataContext())
                {
                    var q = from e in banco.DEOportunidades
                            where e.Ativo && e.Codigo.Equals(codigo)
                            select e;

                    DEOportunidade oportunidade = q.FirstOrDefault();

                    if (oportunidade != null)
                    {
                        oportunidade.DECargo = banco.DECargos.First(c => c.Codigo == oportunidade.CodigoCargo);
                        oportunidade.DEEmpresa = banco.DEEmpresas.First(emp => emp.Codigo == oportunidade.CodigoEmpresa);
                    }

                    return oportunidade;
                }
            }
        }

        private int getOportunidadeID()
        {
            if (Request.QueryString["Oportunidade"] == null)
                return 0;
            else
                return int.Parse(Request.QueryString["Oportunidade"]);
        }

        protected void btnEnviar_Click(object sender, EventArgs e)
        {
            try
            {
                int codigo = getOportunidadeID();
                if (Session["aluno"] == null)
                {
                    string redirect = "../Account/Login.aspx?Oportunidade.aspx?Oportunidade=" + codigo;
                    Util.showMessage(this, "Sua sessão expirou. Por favor, faça o login novamente.", redirect);
                }
                else
                {
                    DEAluno aluno = (DEAluno)Session["aluno"];
                    if (String.IsNullOrEmpty(aluno.Curriculo))
                        Util.showMessage(this, "Você não tem um currículo cadastrado. Por favor, nos envie o seu currículo para que possamos cadastrá-lo em nosso sistema. Email : contato@cursodotnet.com.br", key: "semCurriculo");
                    else
                    {
                        FileInfo arquivo = new FileInfo(Server.MapPath(aluno.Curriculo));
                    }
                }
            }
            catch (Exception)
            {
                Util.showMessage(this, "Houve um erro ao carregar a oportunidade. Tente novamente mais tarde, ou entre em contato.");
            }
        }
    }
}